<?php
include_once '../Exceptions/CommunicationException.php';
include_once '../InfoManager/InfoZtl.php';
include_once '../Model/GateZtl.php';
include_once '../Model/Location.php';
include_once '../Model/Address.php';
include_once '../Model/GPS.php';
include_once '../AtacCommunicator/ACztl.php';

//può prendere in input (lat, long, distance(opzionale))
//oppure (via, distance(opzionale))
//oppure parkname
//il parametro distance è opzionale, può non essere dato
//distance permette di ottenere solo i primi 10 parcheggi entro la distanza immessa
//nessun input non è permesso
//più input diversi non sono permessi

/**
 * @author Davide Lombardi
 *
 */

$im = new InfoZtl();
$distance = null;
$gatename=null;

//CASO SOLO COORDINATE CALCOLO LE COORDINATE DALLA POSIZIONE
if ((isset($_GET["lat"])) && (isset($_GET["long"])) && (!isset($_GET["via"])) ) //sono state inserite le coordinate
{	
	$lat = floatval(RMobUtils::escape_var($_GET["lat"]));
	$long = floatval(RMobUtils::escape_var($_GET["long"]));
	$distance=2000;
	$gps = new GPS($lat,$long);
	$gates = $im->getGatesCloserThan($distance,$gps);

//CASO SOLO VIA CALCOLO LE COORDINATE DELLA VIA
}else if(isset($_GET["via"]) && (!isset($_GET["lat"])) && (!isset($_GET["long"])) ) { //non ho le coordinate, è stata inserita la via
	
	$start = new Location(RMobUtils::escape_var($_GET["via"]),null,null);
	$gps = $start->getGPS();
	$distance=2000;
	$gates = $im->getGatesCloserThan($distance,$gps);

}
//CASO SOLO NOME VARCO PER OTTENERE LE INFO SUL SOLO VARCO
else if(isset($_GET["gatename"]) && (!isset($_GET["lat"])) && (!isset($_GET["long"])) && (!isset($_GET["via"])) ){
    $gatename=(RMobUtils::escape_var($_GET["gatename"]));
	$im = new InfoZtl();
	$gates=$im->getGateInformation($gatename); //ottengo le info sul parcheggio	
}
//CASO SENZA PARAMETRI RITORNO ELENCO VARCHI
else {
	$gates = $im->getGates();
}
$xml = "";
	
	if ($gates != NULL)
	{
		try {
			
			foreach ($gates as $gate)
			{
					//extended mode
					$xml .= $gate->toXML(EXTENDED_MODE);
			}
		}
		catch (CommunicationException $e)
		{
			echo $e->toXML(EXTENDED_MODE);
			exit(1);
		}
	}
	unset($im);
	unset($conn);
	$xml = "<GATEZTL>".$xml."</GATEZTL>";	
	echo $xml;




?>